package com.wx.activitys.base.utils;

import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;

public class FileUtil {
	/**
	 * 根据路径删除指定的目录或文件，无论存在与否
	 * 
	 * @param sPath
	 *            要删除的目录或文件
	 * @return 删除成功返回 true，否则返回 false。
	 */
	public static boolean DeleteFolder(String sPath) {
		boolean flag = false;
		File file = new File(sPath);
		// 判断目录或文件是否存在
		if (!file.exists()) { // 不存在返回 false
			return flag;
		} else {
			// 判断是否为文件
			if (file.isFile()) { // 为文件时调用删除文件方法
				return deleteFile(sPath);
			} else { // 为目录时调用删除目录方法
				return deleteDirectory(sPath);
			}
		}
	}

	/**
	 * 删除单个文件
	 * 
	 * @param sPath
	 *            被删除文件的文件名
	 * @return 单个文件删除成功返回true，否则返回false
	 */
	public static boolean deleteFile(String sPath) {
		boolean flag = false;
		File file = new File(sPath);
		// 路径为文件且不为空则进行删除
		if (file.isFile() && file.exists()) {
			file.delete();
			flag = true;
		}
		return flag;
	}

	/**
	 * 删除目录（文件夹）以及目录下的文件
	 * 
	 * @param sPath
	 *            被删除目录的文件路径
	 * @return 目录删除成功返回true，否则返回false
	 */
	public static boolean deleteDirectory(String sPath) {
		// 如果sPath不以文件分隔符结尾，自动添加文件分隔符
		if (!sPath.endsWith(File.separator)) {
			sPath = sPath + File.separator;
		}
		File dirFile = new File(sPath);
		// 如果dir对应的文件不存在，或者不是一个目录，则退出
		if (!dirFile.exists() || !dirFile.isDirectory()) {
			return false;
		}
		boolean flag = true;
		// 删除文件夹下的所有文件(包括子目录)
		File[] files = dirFile.listFiles();
		for (int i = 0; i < files.length; i++) {
			// 删除子文件
			if (files[i].isFile()) {
				flag = deleteFile(files[i].getAbsolutePath());
				if (!flag)
					break;
			} // 删除子目录
			else {
				flag = deleteDirectory(files[i].getAbsolutePath());
				if (!flag)
					break;
			}
		}
		if (!flag)
			return false;
		// 删除当前目录
		if (dirFile.delete()) {
			return true;
		} else {
			return false;
		}
	}
	public static Boolean donwload(String netUrl,String fileName) {
		InputStream in =null;
		FileOutputStream outputStream = null;
		try {
			URL url = new URL(netUrl);
			URLConnection connection = url.openConnection();
			connection.setConnectTimeout(5000); 
			connection.setReadTimeout(30000); 
			//文本和内容都是字符流
			//图片，音频，视频--字节流
			in = connection.getInputStream();//打开程序和网络的一个连接
			//开始下载，一4KB下载图片
			byte[] bs = new byte[4048];
			//记录下载的位置
			int len = 0;
			int clen = 0;
			//写入磁盘--输出 outputstream
			int tlen = connection.getContentLength();
			outputStream = new FileOutputStream(new File(fileName));
			while((len = in.read(bs))!=-1){//==-1代表文件下载完毕了
				clen+=len;
				System.out.println("====你已经下载了："+clen+"，还剩余："+(tlen-clen)+",百分比:"+((clen/(float)tlen))*100);
				outputStream.write(bs, 0, len);//写入磁盘
			}
			outputStream.close();
			in.close();
			return true;
		} catch (Exception e) {
			e.printStackTrace();
			return false;
					 
		}finally{
			
		}
	}

	public static void saveToFile(String cONTFEE, String string, String string2) {
		// TODO Auto-generated method stub
		
	}
}
